package com.itheima.d2_Collection_Set;

import java.util.Comparator;
import java.util.HashSet;
import java.util.Set;
import java.util.TreeSet;

/**
 * TreeSet:不重复，无索引，可排序
 * 数值类型：默认按照大小进行升序排序
 * 字符串：首字符的编号升序
 * 定义对象无法直接排序，需要自定义:
 *                              1.让自定义类实现Comparable接口，重写compareTo方法
 *                              2.TreeSet集合有参数构造器，可以设置Comparable接口对应的比较器对象，来制定比较规则
 */
public class demo3 {
    public static void main(String[] args) {
       //Integer
        Set<Integer> set1 = new TreeSet<>();
        set1.add(1);
        set1.add(97);
        set1.add(13);
        set1.add(131);
        System.out.println(set1);

       //String
        Set<String> set2 = new TreeSet<>();
        set2.add("aaa");
        set2.add("ffff");
        set2.add("eee");
        System.out.println(set2);

        //=============================================
        Student s1 = new Student("甘雨",18,"女");
        Student s2 = new Student("阿飞",13,"男");
        Student s3 = new Student("刻晴",19,"女");
        Set<Student> sets = new TreeSet<>(new Comparator<Student>() {
            //集合自带的比较器规则制定
            //如果集合和对象都有比较器，将会默认使用集合的比较器规则
            @Override
            public int compare(Student o1, Student o2) {
                return o1.getAge()- o2.getAge();
            }
        });
        sets.add(s1);
        sets.add(s2);
        sets.add(s3);
        System.out.println(sets);



    }
}
